import DZ_CriticalStrike from 'code/Scripts/Abilities/ClassAbility/Lurker/DZ_CriticalStrike';
import ClassAbilityManagerBase from './base/ClassAbilityManagerBase';
import DZ_FanKnive from 'code/Scripts/Abilities/ClassAbility/Lurker/DZ_FanKnive';
import DZ_KillingSpree from 'code/Scripts/Abilities/ClassAbility/Lurker/DZ_KillingSpree';
import DZ_LetBlood from 'code/Scripts/Abilities/ClassAbility/Lurker/DZ_LetBlood';
import DZ_PoisionKnive from 'code/Scripts/Abilities/ClassAbility/Lurker/DZ_PoisionKnive';
import DZ_Sneak from 'code/Scripts/Abilities/ClassAbility/Lurker/DZ_Sneak';
import DZ_SneakAttack from 'code/Scripts/Abilities/ClassAbility/Lurker/DZ_SneakAttack';

declare global {
    var DZAbilities: LurkerAbilityManager;
}

export default class LurkerAbilityManager extends ClassAbilityManagerBase {
    DZ_CriticalStrike: DZ_CriticalStrike;
    DZ_FanKnive: DZ_FanKnive;
    DZ_KillingSpree: DZ_KillingSpree;
    DZ_LetBlood: DZ_LetBlood;
    DZ_PoisionKnive: DZ_PoisionKnive;
    DZ_Sneak: DZ_Sneak;
    DZ_SneakAttack: DZ_SneakAttack;
    constructor() {
        super();
        DZAbilities = this;

        this.DZ_CriticalStrike = new DZ_CriticalStrike();
        this._abilities.set(this.DZ_CriticalStrike.id, this.DZ_CriticalStrike);

        this.DZ_FanKnive = new DZ_FanKnive();
        this._abilities.set(this.DZ_FanKnive.id, this.DZ_FanKnive);

        this.DZ_KillingSpree = new DZ_KillingSpree();
        this._abilities.set(this.DZ_KillingSpree.id, this.DZ_KillingSpree);

        this.DZ_LetBlood = new DZ_LetBlood();
        this._abilities.set(this.DZ_LetBlood.id, this.DZ_LetBlood);

        this.DZ_PoisionKnive = new DZ_PoisionKnive();
        this._abilities.set(this.DZ_PoisionKnive.id, this.DZ_PoisionKnive);

        this.DZ_Sneak = new DZ_Sneak();
        this._abilities.set(this.DZ_Sneak.id, this.DZ_Sneak);

        this.DZ_SneakAttack = new DZ_SneakAttack();
        this._abilities.set(this.DZ_SneakAttack.id, this.DZ_SneakAttack);
    }
}
